In a large bowl, combine egg, chicken, basil, half of scallions, half of chile, half of garlic, half of ginger, and 1 Tbsp. curry paste. Add fish sauce and 1 tsp. soy sauce; season with salt and stir to combine. Scoop mixture into 18 portions (about 2 Tbsp. each) and place on a parchment-lined baking sheet. Freeze until cold, 5 to 10 minutes. Roll meatballs into a more uniform shape, then freeze 5 minutes more.
In a large stainless steel skillet over medium heat, heat oil and swirl to coat pan. Arrange meatballs in skillet in a single layer and cook, turning occasionally, until browned on all sides and an instant-read thermometer inserted into a meatball registers 165°, about 8 minutes. Transfer to a plate.
Reduce heat to medium-low. Cook carrots, stirring occasionally and seasoning with a pinch of salt, until starting to soften, about 5 minutes. Increase heat to medium and add remaining scallions, chile, garlic, and ginger. Cook, stirring frequently, until fragrant, 1 to 2 minutes. Add coriander and remaining 2 Tbsp. curry paste. Cook, stirring frequently, until paste starts to darken, 2 to 3 minutes. Deglaze pan with broth, then stir in coconut milk and honey. Bring to a simmer and cook, stirring occasionally, until sauce is slightly thickened, about 5 minutes.
Stir in spinach, lime juice, and remaining 1 tsp. soy sauce. Return meatballs to sauce to heat through. Top with basil. Serve with rice alongside.