Display metaboxes if checkbox ir marked

Why don’t you use only one metabox and then use jQuery to manage what options to show:

// add metabox
function adding_custom_meta_boxes( $post_type, $post ) {
    add_meta_box(
        'my-meta-box',
        __( 'My Meta Box' ),
        'render_my_meta_box',
        'post',
        'normal',
        'default'
    );
}
add_action( 'add_meta_boxes', 'adding_custom_meta_boxes', 10, 2 );

// render metabox
function render_my_meta_box( $post ) {
    wp_nonce_field( 'my_metas_nonce', 'my_metas_nonce' );

    $my_features_1 = get_post_meta( $post->ID, 'my_features_1', true );
    $my_option_1 = get_post_meta( $post->ID, 'my_option_1', true );
    $my_features_2 = get_post_meta( $post->ID, 'my_features_2', true );
    $my_option_2 = get_post_meta( $post->ID, 'my_option_2', true );
    $my_features_3 = get_post_meta( $post->ID, 'my_features_3', true );
    $my_option_3 = get_post_meta( $post->ID, 'my_option_3', true );

    ?>
        <input type="checkbox" name="my_features_1" class="my_features" value="my_option_1" <?php checked($my_features_1, 'my_option_1'); ?>>Option 1<br>
        <input type="checkbox" name="my_features_2" class="my_features" value="my_option_2" <?php checked($my_features_2, 'my_option_2'); ?>>Option 2<br>
        <input type="checkbox" name="my_features_3" class="my_features" value="my_option_3" <?php checked($my_features_3, 'my_option_3'); ?>>Option 3<br>

        <div id="my_option_1" class="my_options" style="<?php if( ! $my_features_1 ) echo 'display: none;'; ?>">
            <h3>Option 1</h3>
            <input name="my_option_1" value="<?php echo $my_option_1; ?>" />
        </div>

        <div id="my_option_2" class="my_options" style="<?php if( ! $my_features_2 ) echo 'display: none;'; ?>">
            <h3>Option 2</h3>
            <input name="my_option_2" value="<?php echo $my_option_2; ?>" />
        </div>

        <div id="my_option_3" class="my_options" style="<?php if( ! $my_features_3 ) echo 'display: none;'; ?>">
            <h3>Option 3</h3>
            <input name="my_option_3" value="<?php echo $my_option_3; ?>" />
        </div>

        <script>
            jQuery(document).ready(function($) {
                $('.my_features').change(function() {
                    var checkbox = $(this);
                    if( checkbox.is(':checked') ) {
                        $( '#' + checkbox.val() ).show();
                    } else {
                        $( '#' + checkbox.val() ).hide();
                    }
                });
            });
        </script>
    <?php
}

// save metabox data
function save_post_features_meta( $post_id ){
    if ( ! isset( $_POST['my_metas_nonce'] ) || ! wp_verify_nonce( $_POST['my_metas_nonce'], 'my_metas_nonce' ) || ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }

    update_post_meta( $post_id, 'my_features_1', sanitize_text_field($_POST['my_features_1']));
    update_post_meta( $post_id, 'my_option_1', sanitize_text_field($_POST['my_option_1']));

    update_post_meta( $post_id, 'my_features_2', sanitize_text_field($_POST['my_features_2']));
    update_post_meta( $post_id, 'my_option_2', sanitize_text_field($_POST['my_option_2']));

    update_post_meta( $post_id, 'my_features_3', sanitize_text_field($_POST['my_features_3']));
    update_post_meta( $post_id, 'my_option_3', sanitize_text_field($_POST['my_option_3']));
}
add_action( 'save_post', 'save_post_features_meta');