Cover the shrimp with cold water and let sit for 15 minutes. Drain the shrimp, rinse them and place them in a medium pot. Cover the shrimp with 10 cups of water and bring to a simmer over medium-high heat. Once at a simmer, lower the medium heat and simmer for 10 minutes. Strain the broth, reserving both the broth and the shrimp. Allow everything to cool.
Once the shrimp have cooled, remove the heads, tails and legs from the shrimp. Be sure to keep the shells on the shrimp if you want them to add some crunch to the soup.
Remove the stems and seeds from the chiles and place them on a hot comal. Toast until their color changes to opaque, for about 10 to 15 seconds and flip to the other side.
Place the chiles, tomatoes, garlic, bay leaves, and onion into a saucepan and cover with water. Simmer for 10 minutes over medium heat, then puree until smooth.
Over medium heat, add two tablespoons of oil to a large soup pot. Strain the puree over the oil and then simmer for 8 to 10 minutes over medium-high heat, allowing the puree to season and thicken.
Add the shrimp broth, potatoes, carrots, and shrimp to the puree and simmer for 10 minutes over medium-high heat.
Serve the soup with fresh lime to drizzle over the top.