Grind snapper meat and trout meat in a meat grinder set to the smallest grind. Process fish meat through the grinder again.
Place reserved fish heads, skin, and bones in a large pot. Add water, onion, 1 teaspoon salt, 1/2 teaspoon white pepper, and 1 pinch white sugar; bring mixture to a boil and cook until flavors combine, at least 30 minutes. Strain and discard fish heads, skin, bones, and onion. Return broth to the pot.
Beat ground fish, eggs, onion, water, matzo meal, 2 teaspoons salt, 1 teaspoon sugar, and 1/2 teaspoon white pepper in a large bowl with an electric mixture until mixture is soft and holds together. Using wet hands, form fish mixture into oblong 1-inch balls.
Gently drop fish balls into broth, adding more water as necessary to completely cover all of the fish. Cover the pot and bring to a boil; reduce heat, uncover the pot, and simmer until stock has reduced by half, about 2 1/2 hours.
Place a steamer insert into a saucepan and fill with water to just below the bottom of the steamer. Bring water to a boil. Add carrot rounds, cover, and steam until tender but firm to the bite, 6 to 10 minutes.
Carefully remove fish to a serving dish. Place 1 carrot slice on top of each fish ball. Pour broth over the fish balls and set aside to cool to room temperature.
Cover dish with plastic wrap and refrigerate until broth gels, at least 2 hours.