I ended up using the Ad Hoc Validation method of Yii2, here is the link for documentation: 
https://www.yiiframework.com/doc/guide/2.0/en/input-validation#ad-hoc-validation

My code for validation: <br>
Plugin.php

   

    class Plugin extends \craft\base\Plugin
    
    {
        public function init()
    {
        parent::init();

        $this->setComponents([
            'form1Validator' => Form1Validator::class,
            ...
        ]);

        Event::on(
            SaveController::class,
            SaveController::EVENT_BEFORE_SAVE_ENTRY,
            function(SaveEvent $event) {
                try {
                    $response = null;
                    switch($event->entry->section->handle) {
                        case 'form1':
                            $response = Plugin::getInstance()->form1Validator->validate($event->entry);
                            break;
                        ...
                            }
                    }
                    if(!isset($response) || !$response['success']){
                        $event->isValid = false;
                        $event->entry->addErrors($response['errors']);
                    }
                } catch (\Exception $e) {
                    $event->isValid = false;
                    $event->entry->addError('exception', $e->getMessage());
                    return;
                }
            }
        );
    }
}

Form1Validator.php

    class Form1Validator
    {
     public function validate(Entry $entry)
    {
        $model = new DynamicModel(
            [
                'formGender' => $entry->formGender,
                'formFirstName' => $entry->formFirstName,
                'formLastName' => $entry->formLastName,
                'formEmailAddress' => $entry->formEmailAddress,
                'formPhoneNumber' => $entry->formPhoneNumber,
            ]
        );

        if(!$model
            ->addRule(['formGender', 'formFirstName', 'formLastName', 'formEmailAddress'], 'required')
            ->addRule('formGender', 'in', ['range' => ['male', 'female']])
            ->addRule('formEmailAddress', 'email')
            ->addRule('formPhoneNumber', 'match', ['pattern' => '/^[0-9]+$/'])
            ->validate()
        ) {
            return [
                'success' => false,
                'errors' => $model->getErrors(),
            ];
        }

        return [
            'success' => true,
            'errors' => [],
        ];
        }
    }