It's actually a pretty easy choice. Kennedy likely has the highest trade value of the three because of his age(and he's a bit redundant on this roster). Dupuis is the best player of the three, doesn't cost much, and has good chemistry with our best player. Cooke is sort of the odd man out of the three. Especially since he's really not all that effective as an agitator anymore.
Let's play a game with our three third line wingers.
Let one walk
No, I'm not going to play this game. I think in order to keep our team identity and give us competitive advantage, we need to keep Cooke AND Dupuis. I think both will take a bit of a hometown discount.
Kennedy will be the sensible one to move, because if we are able to bring in a top-flight winger, we won't need Kennedy's 20-goal/season production -- which we're not getting right now anyway -- and because Kennedy has some trade value by virtue of not being a UFA. So my answer is very simple:
Keep Cooke (on a 2 year deal)
Keep Dupuis (on a 2 year deal)
Trade Kennedy (unless we utterly fail to acquire another winger via UFA or trade, and/or if Boychuk and Jeffrey do not produce)
This is not only the clearest answer, it's also the one that best approximates reality and what is likely to happen.