Вопрос: Как сделать такую расширенную пагинацию в yii2?

Лучший ответ:
Очень просто. Измените дефолтные настройки в DI контейнере этого класса.

1. С использованием DI Контейнера
<?php

declare(strict_types=1);

namespace frontend\bootstrap;

use Yii;
use yii\base\BootstrapInterface;
use yii\di\Container;
use yii\widgets\LinkPager;

/**
 * @author Maxim Vorozhtsov <myks1992@mail.ru>
 */
class Bootstrap implements BootstrapInterface
{
    /**
     * @inheritDoc
     */
    public function bootstrap($app)
    {
        /** @var Container $container */
        $container = Yii::$container;

        $container->set(LinkPager::class, [
            'prevPageLabel' => false,
            'nextPageLabel' => false,
            'maxButtonCount' => 3,
        ]);
    }
}
Так же DI можно настаивать в config. Я обычно настраиваю там, но кто-то создает такой bootstrap файл. Тут уж выбирайте сами. Я выбираю config. Вот пример:
'container' => [
        'singletons' => [
            CheckAccessInterface::class => yii\rbac\DbManager::class,
            IdentityInterface::class => function () {
                return Yii::$app->user->getIdentity();
            },
        ],
    ],
Но для понимания оформил в bootstrap. Чтобы работало не забудьте поместить этот класс в секцию Bootstrap config фала:
'bootstrap' => [
        frontend\bootstrap\Bootstrap::class
    ],

2. C созданием класса, наследованный от базового
<?php

declare(strict_types=1);

namespace frontend\widgets;

class LinkPager extends \yii\widgets\LinkPager
{
    public $prevPageLabel = false;
    public $nextPageLabel = false;
    public $maxButtonCount = 3;
}

И используйте как обычно. Если нужно заменить в DataProvider используйте DI контейнер. Либо подмените класс на свой:
Yii::$container->set('yii\widgets\LinkPager',  'frontend\widgets\LinkPager');

Худший ответ:
Очень просто. Измените дефолтные настройки в DI контейнере этого класса.

1. С использованием DI Контейнера
<?php

declare(strict_types=1);

namespace frontend\bootstrap;

use Yii;
use yii\base\BootstrapInterface;
use yii\di\Container;
use yii\widgets\LinkPager;

/**
 * @author Maxim Vorozhtsov <myks1992@mail.ru>
 */
class Bootstrap implements BootstrapInterface
{
    /**
     * @inheritDoc
     */
    public function bootstrap($app)
    {
        /** @var Container $container */
        $container = Yii::$container;

        $container->set(LinkPager::class, [
            'prevPageLabel' => false,
            'nextPageLabel' => false,
            'maxButtonCount' => 3,
        ]);
    }
}
Так же DI можно настаивать в config. Я обычно настраиваю там, но кто-то создает такой bootstrap файл. Тут уж выбирайте сами. Я выбираю config. Вот пример:
'container' => [
        'singletons' => [
            CheckAccessInterface::class => yii\rbac\DbManager::class,
            IdentityInterface::class => function () {
                return Yii::$app->user->getIdentity();
            },
        ],
    ],
Но для понимания оформил в bootstrap. Чтобы работало не забудьте поместить этот класс в секцию Bootstrap config фала:
'bootstrap' => [
        frontend\bootstrap\Bootstrap::class
    ],

2. C созданием класса, наследованный от базового
<?php

declare(strict_types=1);

namespace frontend\widgets;

class LinkPager extends \yii\widgets\LinkPager
{
    public $prevPageLabel = false;
    public $nextPageLabel = false;
    public $maxButtonCount = 3;
}

И используйте как обычно. Если нужно заменить в DataProvider используйте DI контейнер. Либо подмените класс на свой:
Yii::$container->set('yii\widgets\LinkPager',  'frontend\widgets\LinkPager');