Heat 2 tablespoons olive oil in a large pot over medium heat. Add diced yellow onion, diced carrot, and diced celery and cook, stirring often, for 8 to 10 minutes until the onion is golden and soft. Add minced garlic and cook for 30 seconds until fragrant.
Add remaining 1 tablespoon oil and the tomato paste. Season with salt and pepper (I add 1/2 teaspoon salt and 1/4 teaspoon pepper). Stir and cook for 7 to 9 minutes until the veggies are very tender and the tomato paste is thick and darkened. Don’t rush this step! Add dried thyme, dried crushed rosemary, and red pepper flakes. Stir to combine.
Slowly pour in vegetable broth, scraping up any browned bits on the bottom of the pan. Add the cannellini beans and stir. Bring to a boil, then reduce the heat to a gentle simmer. Cook uncovered for 10 to 15 minutes.
Remove 2 cups of soup and blend until smooth. Pour it back into the pot and stir to combine. Add basil pesto and mix well. Taste and adjust seasonings (I usually add another 1/4 teaspoon salt).
Ladle the soup into bowls and drizzle each with 1/2 tablespoon basil pesto (or more, to taste). Garnish with fresh thyme and serve with buttered bread for dunking!