Dice bacon into about 1" pieces then add to a large soup pot of Dutch oven. Cook until crisp.
Use a slotted spoon to remove bacon from the pot and set aside. Leave bacon drippings in the pot.
Add onion, carrots and celery. Season with salt and black pepper. Cook 5–7 minutes until carrots are softened. Add minced garlic and thyme. Cook 1 minute.
Stir in tomato paste and cook 2–3 minutes. If using, add the ham bone now.
Pour in chicken broth (stock or bone broth) and add drained/rinsed beans. Bring to a gentle boil, then reduce heat and simmer for about 20 minutes.
Use an immersion blender to pulse a few times (leaving some in chunks for a heartier bite). NOTE: If you don’t have an immersion blender, add some of the soup to a regular blender, pulse then stir it back into the soup.
Simmer uncovered another couple of minutes then stir in bacon and parsley. Taste and adjust for salt. Serve warm.