WordPress auto adds p to shortcode parameters

You need to ensure that your shortcode functions are executed before wpautop by changing its filter priority.

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);