Stir the pesto, Parmesan, and red pepper flakes in a small bowl.
Spread butter on one side of each bread slice.
Flip the bread and spread the pesto mixture on the unbuttered sides.
Layer mozzarella, provolone, tomato, and spinach over half the slices. Cap with remaining bread, buttered side out.
Warm a large nonstick skillet over medium-low. Cook sandwiches 3–4 minutes per side until deeply golden and cheese melts.
Rest 1 minute on a board, then slice and serve hot.