First of all, I would just call preflop and look to flop an 8 in a 3way pot.
Once you 3bet and got called, on that dry flop with just one overcard and only the btn to act you have to cbet to try to take it down after showing strength preflop.
I think it's a mistake to inflate the pot preflop with an ok hand but then to give away the momentum on the flop. Either play it aggressively or just setmine. Don't go middle ground on a relatively innocuous flop.
You're not folding out anyone with that weak turn bet after you check the flop. You're giving draws the odds
to see the river.
Was there 2 hearts on the flop? Or did the 2nd heart come on the turn?
I think you're beaten here. Muck it. Even if he had 9Tos, you're dead.