01 - Place bread slices on a cutting board. Spread softened butter evenly on one side of each slice.
02 - Spread basil pesto generously on the unbuttered side of two bread slices.
03 - Layer mozzarella and provolone over the pesto. Add tomato slices and Parmesan if using. Season with black pepper. Top with remaining bread slices, buttered side facing outward.
04 - Heat a large nonstick skillet or griddle over medium-low heat.
05 - Place sandwiches in the skillet. Cook for 3-4 minutes per side, pressing gently with a spatula, until bread turns golden brown and cheese melts completely.
06 - Transfer sandwiches to a cutting board. Let rest for 1-2 minutes before slicing diagonally and serving warm.