Render exposed filter without creating block
I found the solution. I created a custom block which uses the following code.
use Drupal\Core\Form\FormState;
use Drupal\views\Views;
 
$form = [];
$view_id = 'Your-view-id';
$display_id = 'your-display-id';
$view = Views::getView($view_id);
if ($view) {
  $view-&gt;setDisplay($display_id);
  $view-&gt;initHandlers();
  $form_state = (new FormState())-&gt;setStorage([
    'view' =&gt; $view,
    'display' =&gt; &amp;$view-&gt;display_handler-&gt;display,
    'rerender' =&gt; TRUE,
  ])
    -&gt;setMethod('get')
    -&gt;setAlwaysProcess()
    -&gt;disableRedirect();
  $form_state-&gt;set('rerender', NULL);
  $form = \Drupal::formBuilder()-&gt;buildForm('\Drupal\views\Form\ViewsExposedForm', $form_state);
  print render($form);
}

You can create your own exposed filter in a block without requiring any third-party module.