I don't know if there are any specific rules in DnD, but I had that problem quite often in my Pen&Paper party aswell. I like playing quite fleshed-out NPCs and my players became attached to a few, so simply killing them off won't do it, but although I haven't found a perfect solution here are some suggestions:
Split the Party
while players should never do this, I found it to be a valid way to reduce NPCs during fights. When your players venture into a dungeon and are just about to open the next door have your NPCs suggest to stay back and watch for an ambush. Surely your players don't want to be caught in a pincer move. Maybe you won't get all NPCs out of the fight, but you'll be able to reduce their amount. I'd also suggest to have them be attacked from time to time, so it won't seem like they are just 'dodging the fight'. Maybe in one dungeon your PCs are able to hear noises outside and realize their rear guard has really been attacked. There are a few foes already lying dead to their feet, but your NPCs look badly beaten, too. Since the other half of the NPCs was too exhausted to come with your players, you can even have 2 fights with a reduced amount of NPCs.
Let your players play the NPCs
As Christopher already suggested. Simply let your players control the NPCs. Maybe have each NPC shout something like "You are the more expierienced fighter xyz, I trust you my life. Tell me what to do.", which will also encourage your player to earn their companions trust. You still act for the NPCs, but the players get to control what they do and will also earn rewards and renown due to their performance.
Scripted battles
A tactic I often resorted to in order to keep NPC turns as short as possible is to script their battle. In this scenario I always add a few enemies just for my NPCs to kill. Then I either decide the outcome or simply let the dice decide beforehand. All I have to do now is to vividly tell my players how their companions are doing without constantly rolling dice or checking for stats. If there is anything that wasn't part of my pre-set plan I mostly let them roll naturally. It is not the best option though, as to plans never survive contact with the enemy, but it worked in some cases.
Exaggerating
Waiting for NPCs to take their turn can be boring, but it doesn't have to be. Exaggerate everything you can. The paladin didn't just swing his sword and miss, no, he valiantly charged the enemy, lashed forward in a masterful maneuver and missed the enemies head only by mere inches. "This one can dodge like a rogue" he shouted, although it was clearly visible the foe didn't dodge at all. Make your NPCs turns funny, make them awesome, make them special. They shouldn't steal your players spotlight, but they should get some memorizable moments aswell.
Reduce the ratio of your NPCs turns
I don't like to do it, because I tend to forget about my NPCs , if they don't take regular turns, but I also experimented with having my NPCs only take every 2nd or 3rd turn. You might increase their damage or just have them take multiple turns as one as compensation. It might change the balance of the fight for the better or the worst, but it will increase the 'screentime' your players might get.
Hope there are some suggestions that meet your taste. I am not an expert in this particular field, as I often struggle with it on my own, but I had quite a few times to experiment on this already.