No explanation for the horses, for the men, well, consider this screen cap:

We see about 12 rows standing in front of the walls, 20,000/12 = 1666
. They also seem to stand no more than 1m apart, so this would mean at most 1.6km of forces spread in front of the wall, if you look at for example the following map of King's landing this does not seem at all an unrealistic spread.

I couldn't find a map with (estimated) scale, but the total length of land-facing walls seems to be far over 1.6km. Since it's not a siege Daenerys' force will probably focus on a specific part of the wall but it's certainly not far-fetched they do need to cover a big piece of the wall and they need to cover every gate, even if the army is (not yet) to be seen at the other gates. We focus mostly on the single gate Jon is facing, but that doesn't mean the army is limited to that.
Though This does not at all explain the lack of cavalry, since we don't see any in the show it's not really possible to give any explanation for that.