Preheat the oven to 400 degrees F. Line a baking sheet with parchment paper.
In a medium mixing bowl, combine all the ingredients for the meatballs, and gently combine with clean hands. You don’t want to overly break the meat apart, just to incorporate it with the other ingredients. Form the meat mixture into 2-inch balls and set them in even rows on the baking sheet. Bake in the over for 25 to 30 minutes, until the meatballs are golden brown and cooked through.
Meanwhile, make the sauce: heat 2 tablespoons of olive oil in a large saucepan. Saute the onion, peppers, carrots, and half the fennel until soft, about 8 minutes. Add the garlic and paprika and season with salt and a pinch of cayenne pepper. Cook until fragrant, another 2 minutes. Carefully add the tomatoes to the pan. Using the back of your spatula, break apart the tomatoes into coarse chunks. Bring the sauce to a gentle simmer and cook, stirring occasionally, until the sauce has thickened and the flavors have melded, about 15 to 20 minutes.
Remove the sauce from the heat and transfer to a blender or food processor. Puree until smooth.
Bring a large pot of heavily salted water to a boil. Cook the spaghetti according to package directions until al dente. Drain, reserving ¼ cup of cooking water.
Toss the remaining fennel with 1 tablespoon of lemon juice and a glug of olive oil. Season with salt and pepper.
To serve, toss the spaghetti with ¾ of the sauce in a large mixing bowl. Divide between 4 bowls, creating pasta nests. Toss the meatballs with the remaining sauce and place 3 to 4 balls on top of each plate of pasta. Garnish with the shaved fennel, the reserved fronds (coarsely chopped), and some fresh parsley.