Heat pan over medium heat and add olive oil. Add spinach and cook until wilted, 2 to 3 minutes. Add artichokes and cook until heated through, 1 minute more.
Drain excess liquid from pan and remove from heat. Stir in sour cream, then add garlic powder and a pinch each of salt and pepper. Stir to combine.
Wipe pan clean and heat to medium. Spread butter on one side of each slice of bread. On the non-buttered side of one slice, place half of Mozzarella and half of Parmesan, then top with the spinach-artichoke mixture and remaining cheeses. Close sandwich.
Place sandwich in pan; cover and cook until golden brown, 3 to 4 minutes. Flip, and cook other side until cheese is melty and bread is golden brown, 2 minutes more.
Slice in half and serve.
Recipe adapted from delish.com.