Yes, we can do this. I made some example, hope it will help you.
In webpack js:
const path = require('path');
const webpack = require('webpack');
const TerserPluign = require('terser-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
  entry: {
    index: './src/assets/js/index.js',
    about: './src/assets/js/about.js'
  },
  output: {
    filename: '[name].[contenthash].js',
    path: path.resolve(__dirname, './build'),
    // publicPath: 'my-domain/'
  },
  mode: 'none',
  module: {
    rules: [
      {
        test: /\.(jpg|png)$/,
        type: 'asset',
        parser: {
          dataUrlCondition: {
            maxSize: 60 * 1024 // max size 60 kilobytes.
          }
        }
      },
      {
        test: /\.txt/,
        type: 'asset/source',
      },
      {
        test: /\.(scss|css)$/,
        use: [
          MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'
        ]
      },
      {
        test: /\.(less)$/,
        use: [
          // 'style-loader', 'css-loader', 'less-loader'
          MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'
        ]
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: [ '@babel/env'],
            plugins: [ '@babel/plugin-proposal-class-properties']
          }
        }
      },
      {
        test: /\.hbs$/,
        use: [
          'handlebars-loader'
        ]
      },
    ]
  },
  plugins: [
    new webpack.DefinePlugin({
        'process.env.NODE_ENV': JSON.stringify('development'),
        'global': {},
    }),
    new TerserPluign(), // To use reduce size of bundle files,
    new MiniCssExtractPlugin({
      filename: "[name].[contenthash].css"
    }),
    new CleanWebpackPlugin({
      cleanOnceBeforeBuildPatterns: [
        '**/*',
        path.join(process.cwd(), 'dummyBuildFolder/**/*')
      ]
    }),
    new HtmlWebpackPlugin({
      title: 'Default HTML',
      filename: 'index.html',
      template: 'src/templates/index.hbs',
      description: 'this is meta description for index page',
      chunks: ['index']
    }),
    new HtmlWebpackPlugin({
      title: 'About Us HTML',
      filename: 'about.html',
      template: 'src/templates/about.hbs',
      description: 'this is meta description for about us page',
      chunks: ['about']
    })
  ]
}
Above will generate two files, index.html and about.html
In index.html:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Default HTML</title>
    <meta name="description" content="this is meta description for index page" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script defer src="index.22a0682faed73cf496ac.js"></script>
    <link href="index.2ab526c55a3c67e01bfb.css" rel="stylesheet">
  </head>
  <body>
    <div id="my_root" />
    <div id="initialMessage"></div>
    <div id="lipsumTxtId"></div>
  </body>
</html>
In about.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>About Us HTML</title>
    <meta name="description" content="this is meta description for about us page" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script defer src="about.0d3ba2ce20763dbd16dc.js"></script>
    <link href="about.352d245e3219b89be11d.css" rel="stylesheet"></head>
  <body />
</html>