There is really no reason they can't keep all three. They need to trim some fat, like Moore, anyway. The problem with keeping all three of these players is it means one of the RB's is likely gone though. Which in the even its McFadden, doesn't really bother me.
With Switzer not being healthy the entire pre-season so far, I wouldn't be surprised if they open up another roster spot for a WR. Rush should/could beat out Moore. Rico has already beat out Swaim, if they're being honest.
Now, will they go with the more talented players and keep these three guys? Garrett's history tells us no. But, there is no reason they can't.
I don't think it would be that difficult, either, especially with the suspensions.
If you have three quarterbacks, four tight ends and six receivers, that's 13 roster spots, plus the three automatics on special teams (for 16 accounted for.)
You can keep the rest to 37 by keeping:
1 FB (Smith)
3 RBs (McFadden, Morris, Smith if Elliott's suspended; cut Morris if Elliott's not)
8 OL (Smith, Cooper, Frederick, Martin, Collins, Green, Looney, Bell or Cleary)
That gives us 25 offensive players.
5 DEs (Lawrence, Crawford, Mayowa, Charlton, Tapper or Jones, with Moore and Irving suspended)
4 DTs (Collins, Thornton, Paea, Neal)
6 LBs (Lee, Smith, Hitchens, Wilber, Durant, Nzeocha, with Wilson possibly suspended; cut Durant if Wilson isn't)
6 CBs (Scandrick, Carroll, Brown, Awusie, Lewis, Thomas or White; can keep both Thomas and White if Carroll is suspended)
4 Ss (Jones, Heath, Woods and Frazier)
That gives us 25 on defense.