Heat the olive oil and butter in a large pot over medium-high heat. Add the onion and pepper, then sauté for 5-6 minutes, or until the onion turns translucent.
Stir in the garlic, Italian seasoning, and red pepper flakes, and cook for 1-2 minutes until fragrant.
Stir in the flour and cook for 2-3 minutes, or until the flour turns golden, scraping up the browned bits from the bottom of the pot.
Add the drained tomatoes, chicken broth, chicken bouillon (if using), salt, and pepper. Bring to a simmer, reduce the heat to medium, and cook for 5 minutes.
While the soup simmers, add the cream cheese pieces to a deep heat-safe measuring or blending cup. Carefully add about 1 cup of the hot broth (or enough to cover) and set aside.
Stir in the lasagna noodles, bring back to a simmer, and cook for 8-10 minutes or until al dente (tender but still somewhat toothy). Stir the soup periodically to keep the noodles from sticking to the bottom. While the noodles cook, carefully blend the melted cream cheese with the chicken broth with an immersion blender or in a blender until smooth.
Reduce the heat to low, then stir in the cream cheese mixture, shredded chicken, half-and-half, and grated parmesan cheese. Cook for 3 minutes or until steaming.
Stir in the chopped baby spinach and cook for 2-3 minutes or until just wilted.
Season the soup to taste with salt and pepper and serve hot, garnished with ricotta cheese, parmesan, and shredded mozzarella.