01 - Place bread slices on a clean work surface. Spread approximately 1/2 tablespoon softened butter evenly on one side of each slice.
02 - On the unbuttered side of two bread slices, spread 1 1/2 tablespoons basil pesto in an even layer.
03 - Arrange mozzarella and provolone slices over the pesto-coated bread. Add tomato slices if using, then sprinkle with grated Parmesan and freshly ground black pepper.
04 - Top each sandwich with remaining bread slices, ensuring buttered sides face outward.
05 - Heat a large nonstick skillet or griddle over medium-low heat for 2-3 minutes.
06 - Place sandwiches in the preheated skillet. Cook for 3-4 minutes on the first side, pressing gently with a spatula. Flip and cook an additional 3-4 minutes until bread is golden brown and cheese is completely melted.
07 - Remove sandwiches from skillet and let rest for 1-2 minutes. Slice diagonally and serve immediately.