All the solutions I’ve seen so far either complete remove autop functionality from all shortcodes or remove the ability to intentionally add br and p tags between the shortcodes.

The key is to recreate the wpautop function with the ability to specify shortcodes that it should not run the filter on.

I don’t mean to self promote but I’m not sure of another way to share the code as it is quite long.

I did so here:
https://github.com/chiedolabs/shortcode-wpautop-control