I've never had it take more than an hour, even with 6 people.
Odds are you guys are analyzing the trades too much.
There's a variant I always play with that
I think improves the game immensely, and that's play with everyone's hand face-up in front of them .
This makes it easy to see who has what, so you won't have to ask '
does anyone have a blue bean?'
because you can just look around the table and see for yourself.
If anything, this actually adds more strategy to the game as you can use what other players have more to your advantage: "Normally this wouldn't be a good trade, but since you're going to have to plant that next turn and prematurely harvest one of your valuable fields
why don't you do it anyway?
"
If you still find this doesn't speed things up, you can try one of these variants to adjust when the end of the game arrives:
Have everyone draw one more card per turn, 4 instead of 3 in a 3-5 player game and 5 instead of 4 in a 6-7 player game.
This is probably the least intrusive as just gives you more trading options.
Only go through the deck 2 times instead of 3.
This will make for a shorter game, but IMHO
it's a little less interesting.
Put a timer on 45 minutes and stop at the end of the players turn when it goes off.
This should only be an absolute last resort, but it will make people play a bit faster since they know that they only have a limited amount of time.
Of course, you'll have to be careful people don't purposely waste time to deny their left-hand opponent that last turn he needs to plant his cocoa been before time runs out...
boardgames.stackexchange.com/users/191/Gordon Gustafson
A drastic variant would be to make the last two phases of a turn simultaneous after a whole round of everyone doing the first couple.
So: Player A plants 1, turns up 2 trades Player B plants 2, turns up 2 trades Player C plants 1, turns up 2 trades Everyone trades at once until all beans have been traded or planted.
Everyone draws three cards Resume with the next 1st player (1st player rotates)
However, in general, I agree with the other advice that simply more experience should hasten the game.
boardgames.stackexchange.com/users/587/Neal Tibrewala
(tldnr: use a timer when trading)
I will assume 6 players, so all cards are used.
There are 151 cards in the deck.
30 are dealt out at the start leaving us with 121.Each turn
5 cards are draw, meaning before the first reshuffle there will be 24 turns.
You can't use simple math to show how long the other 2 reshuffles will take, but in my experience the last 2 put together are about as long as the first.
So now all that we need to do is use a timer and give players 1 min to trade.
48 turns at most a min but often less+ some book keeping and shuffling, comes out to about a 45 min game.
boardgames.stackexchange.com/users/832/Andrey
One obvious route would be to run through the deck only twice instead of three times.
It's probably not ideal, but it would keep your games down to a manageable length of time while people get to grips with the trading aspect.
I do think, as I said in my comment, that 2 hours is an excessive amount of time for a game of Bohnanza to take, and I suspect that as you get a bit more comfortable with how it works, trading options/decisions will become more obvious, and you'll definitely get it down to below an hour.
(If you can't, then identify the biggest slowcoaches and just refuse to trade with them unless they speed up their play!)
boardgames.stackexchange.com/users/436/thesunneversets
People often forget the rule that non-active players may not trade amongst themselves which could slow down the game.
boardgames.stackexchange.com/users/1960/palacsint
Whenever I have a one hour window to play, I try this game, and it tends to take more like 2 hours. So far, I find the negotiating really entertaining - so I'm not sure if I want to go crazy trying to enforce time constraints on play.  The box says a game takes 45 minutes. Does that hold true for anyone? Are there things you do that speed up the game that don't feel heavy handed?
How do we speed things up in Bohnanza?
boardgames.stackexchange.com
<bohnanza>
boardgames.stackexchange.com/questions/4300
boardgames.stackexchange.com/users/762/Ryan
Put a timer on for 45 minutes and stop when it goes off. You can also run through the deck once rather than 3 times. There are several ways to speed up the game. You can play with everyone's hand face-up in front of them or have everyone draw one more card per turn or even put a timer on for 45 minutes and stop at the end of the players turn when it goes off, or an obvious route would be to run through the deck only twice instead of three times.  A more drastic variant would be to make the last two phases of a turn simultaneous after a whole round of everyone doing the first couple.  
`play with everyone's hand face-up in front of them . Have everyone draw one more card per turn. Put a timer on 45 minutes and stop at the end of the players turn when it goes off. A drastic variant would be to make the last two phases of a turn simultaneous after a whole round of everyone doing the first couple.   One obvious route would be to run through the deck only twice instead of three times.    