i would like to have 3 default columns editable in guttenberg

So first of all this is explained in detail in the documentation, just not exactly for this particular case.

To summarize:

  • You want to set a “block template” for the post type “page”.
  • In this block template you want to have one columns block with 3 column blocks inside with widths of 25%, 50% and 25%

In code this looks like this:

function wpse_354875() {
    $post_type_object = get_post_type_object( 'page' );
    $post_type_object->template = [
        [
            'core/columns',
            [],
            [
                [
                    'core/column',
                    ['width'=>25],
                    []
                ],
                [
                    'core/column',
                    ['width'=>50],
                    []
                ],
                [
                    'core/column',
                    ['width'=>25],
                    []
                ],
            ]
        ],
    ];
}
add_action( 'init', 'wpse_354875' );