Preheat oven to 425°F.
Place tomatoes and garlic on a baking tray, drizzle with 2 tablespoons of olive oil, season with salt, pepper, and red pepper flakes, roast for about 25 minutes, or until soft and charred on the tops.
Remove tray from oven and set aside.
Set up the Instant Pot to the Sauté function and wait until it reads HOT.
Add 2 tablespoons of olive oil, once the oil heats up, about 30 seconds, add the diced onion, red bell pepper, and celery ribs, season with the garlic powder, onion powder, dried basil, red pepper flakes, salt, and pepper. Cook for 2-3 minutes, stirring occasionally.
Add the tomato paste and stir to combine. Add the garlic and roasted tomatoes with all the juices from roasting. Stir to combine.
Add the chicken or veggie broth, stir to combine. Adjust for salt and pepper and cover with the lid.
Cover with the lid, point valve to sealing, and Pressure Cook on High for 10 minutes.
Once the 10 minutes have passed, use a 10 Minute Natural Release (explained in the post) to release the pressure. After the 10 minutes natural release, open the valve and release the remaining pressure. When the valve drops carefully remove the lid.
Open the Instant Pot, select the Sauté function, stir the soup, and stir in the heavy cream. Taste and adjust for salt and pepper. If the soup is too thick, you can add more chicken stock, ½ cup at a time.
Cancel Saute function.
Using an immersion blender or a Vitamix, puree the mixture until it’s very smooth. I transferred the soup in two batches into the Vitamix to puree it, but if you use an immersion blender you can puree the soup directly in the Instant Pot.
Serve garnished with grated parmesan cheese and fresh basil leaves.
Store in the fridge for up to 3-4 days. Read the post for freezer instructions.
Enjoy!