You need stronger pokemon than that! Go into victory road and fight whatever you see, until you get to atleast 46. Lance will dominate you otherwise.
My stragety was this:
All my pokemon were around 45 or so. I bought around 35 hyperpotions, 15 elixers; 5 full restores; 20 full heals; and I had 3 max revives for last resorts in a battle.
Will was difficult. his xatu came at me with a rough start, and I really had difficulty keeping up with it. I beat him though, maxing out on hyper potions, and the only thing that really gave me trouble was his slowbro, since its defenses were so high after he raised them. The next two took no stragety. The poison guy used alot of bugs, which my pidgeot dominated. Bruno, once again, was dominated by my pidgeot. The fourth one really gave me trouble though, since she was dark. I kept strong and finished her off though. Lance was a beast, as expected. I took out his areodactyl and his charizard with ease. his gyarados and his 3 dragonites...not so much. For the next bit, I sent out lugia and kept using areoblast. when I ran out, I'd use an elixer, when he was low on health, I'd use a hyper potion.
My strategy, overall, was to stock up on medicine, get my pokemon up to the 45s and to OD them on meds when the going got tough lol.If you do that, you should be fine. Also, a thunder or an Ice beam will really help you.