Правильно ли в данном случае использовать статические методы?
Когда использовать статику а когда нет? Это классический вопрос.
Минусы статики:
 - Нет конструктора
В конструторе обычно инициализируются все зависимости класса, без которых он не будет работать. После того, как создал экзепляр класса - конструктор выполнился. А у статичного класса нет гарантии, что класс был инициализирован. Можно конечно обойти это убогими костылями и хаками типа - StaticClass::init(), но это не правильный дизайн, по любому.
- Не сможешь писать юнит тесты аккуратно
Сейчас пока ты не знаком с этим и с теорией TDD, но в будущем ты поймешь, что глобальные статичные классы - это зло, когда попытаешься протестировать метод, внутри которого статичные классы.
Теперь по существу:
Работа с базой - создание, редактирование пользователя, а также проверка на валидность авторизации лучше всего будеть поместить в один DataMapper класс. И вообще погугли что такое Data Mapper.class UserMapper
{
     private $pdo;
     
     public function __construct($pdo)
     {
          $this->pdo = $pdo;
     }

     public function authValid($login, $password)
     {
         // Выполнил запрос к базе через $pdo и вернул true или false
     }
}
Затем в классе Auth, в методе attemp() просто вызываешь UserMapper передавая данные, а не пишешь логику там.
статика не дает никаких преимуществ.
если задается такой вопрос, то скорее всего статика не нужна.