Pat the shrimp dry. Season with salt, black pepper, Italian seasoning, and smoked paprika, if using.
Heat the olive oil and 1 tablespoon butter in a Dutch oven or large soup pot over medium-high heat.
Add the shrimp in a single layer. Cook for 1 to 2 minutes per side, until pink and opaque. Transfer the shrimp to a plate.
Reduce the heat to medium. Add 2 tablespoons butter to the pot. Add the diced onion and cook for 3 to 4 minutes, until softened.
Add the garlic and red pepper flakes, if using. Cook for 30 seconds, stirring constantly.
Sprinkle the flour over the onion and garlic. Stir and cook for 1 minute.
Slowly pour in the chicken broth while whisking or stirring to keep the broth smooth. Add the Italian seasoning and bring to a gentle simmer.
Simmer for 3 to 4 minutes, until the broth begins to thicken slightly.
Lower the heat. Stir in the heavy cream and warm for 2 to 3 minutes without boiling.
Remove the pot from the heat. Add the grated Parmesan gradually, stirring after each addition until smooth.
Stir in the baby spinach until wilted. Add the lemon juice.
Return the shrimp and any juices from the plate to the soup. Warm gently for 1 to 2 minutes, without boiling.
Taste and adjust salt and black pepper. Garnish with parsley, extra Parmesan, red pepper flakes, and lemon wedges. Serve immediately.