Bring a large pot of salted water to a boil and add the penne, cooking according to package directions until al dente; drain and set aside. While the water heats, prepare your mise en place by mincing the garlic and onion, finely chopping the sun-dried tomatoes, and measuring out the broth and cream. Season the shrimp with paprika, Italian seasoning, salt, and black pepper in a small bowl, tossing gently to coat evenly.
Heat the sun-dried tomato oil in a large skillet over medium-high heat until shimmering. Add the seasoned shrimp and cook for 2 minutes per side until they turn pink and opaque. Don't overcrowd the pan—work in batches if needed. Transfer the cooked shrimp to a plate and set aside; I find it's important not to overcook shrimp since they continue cooking slightly when added back to the warm sauce.
In the same skillet, reduce heat to medium and melt the butter. Add the minced garlic, onion, and chopped sun-dried tomatoes, sautéing for about 1-2 minutes until fragrant and the onion begins to soften. Stir in the tomato paste, Italian seasoning, paprika, salt, and dried basil, cooking for another 30 seconds to incorporate the spices and deepen their flavors.
Sprinkle the flour over the aromatics and stir constantly for about 1 minute to cook out the raw flour taste and create a paste-like base. Gradually pour in the vegetable broth while stirring to avoid lumps, then add the heavy cream. Bring the sauce to a gentle simmer and cook for 3-4 minutes, stirring occasionally, until it thickens enough to coat the back of a spoon.
Add the fresh spinach to the simmering sauce and stir until it wilts, about 1 minute. Remove from heat and stir in the grated Parmesan cheese until completely melted and incorporated. I like to taste and adjust the seasoning at this point since the cheese can add saltiness and the sauce depth improves with a final flavor check.
Add the cooked penne from Step 1 to the creamy sauce, stirring gently to coat all the pasta. Return the seared shrimp from Step 2 to the skillet and fold gently into the pasta to warm through without breaking them. Toss everything together until well combined, then portion into serving bowls immediately while hot.