Is there a way to run drush updb without going to maintenance mode
Actually, if you take a look at the drush code for updatedb command, you can find this piece of code in updateBatch() function:

$original_maint_mode = \Drupal::service('state')-&gt;get('system.maintenance_mode');
if (!$original_maint_mode) {
    \Drupal::service('state')-&gt;set('system.maintenance_mode', true);
    $operations[] = ['\Drush\Commands\core\UpdateDBCommands::restoreMaintMode', [false]];
}


For safety reasons, the drush command puts your site in maintenance mode during the update and then set it back online once it is completed. It prevents your users from accessing the website and generate possible conflicts within the database while it is updating.

There is a pretty clear explanation of this here

If you really wish to avoid the maintenance mode, though, you could run update.php directly from your website.