Believe it or not, they’re all grammatically correct, but I wouldn’t say any of them. For one thing, we wouldn’t talk about a thunderstorm “happening”, for another, we wouldn’t normally use “can” to speculate about tomorrow’s weather. “Could” would work, but I’d normally use “might”. “There might be a thunderstorm tomorrow”, or “There is a possibility / chance of thunderstorms tomorrow”.