Yes, there is... BUT... it’s a ton of effort, that is very unlikely to ever make any material difference.
The problem here isn’t so much that different calendar months have different numbers of calendar days. From any year to the next, different years will have a different number of trading days, depending on the accident of when weekends and public holidays fall that year. Whatever the “correct” adjustment, it will different for 2019 than for 2018, which is different than for 2017, and so on :-(
So if you’re happy to count the actual trading days every month every year, and you’re confident it will ever make a difference, here goes...
Each monthly return is obviously a sample subset of similar but slightly different sample size. From this, divide the monthly return by the number of trading days that month to give you a daily return sample estimate for that month. Given that plus the number of trading days that month, you can create a “pooled” variance estimate for multiple sample subsets combined, that takes into account the sample size that each month contributes to the aggregate.
I struggle with why anyone would bother trying, and struggle to believe it would make any noticeable difference given the inherent noise in market returns.
This plus the root 12 times monthly sigma equally miss the basic point. Imagine a month where the market was up or down 10% every day that month, but ending up flat. That zero monthly return would dampen your vol estimate, when 10% per day “coin flip” should represent 160% annualised vol over that period. To do this properly, you need higher-frequency data!